home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 2000 April: Mac OS SDK / Dev.CD Apr 00 SDK1.toast / Development Kits / Mac OS / Open Transport 1.3 / Open Transport SDK / Open Tpt Client Developer / Samples / Internet / OTGetInterfaceInfoSample.cp < prev    next >
Encoding:
Text File  |  1998-04-30  |  3.4 KB  |  148 lines  |  [TEXT/MPS ]

  1. /*
  2.     File:        OTGetInterfaceInfoSample.cp
  3.  
  4.     Contains:    Sample showing use of OTInetGetInterfaceInfo 
  5.  
  6.     Copyright:    © 1994-1997 by Apple Computer, Inc., all rights reserved.
  7.  
  8. */
  9.  
  10. #include <Types.h>
  11. #include <Events.h>
  12. #include <SegLoad.h>
  13. #include <String.h>
  14. #include <strings.h>
  15. #include <Quickdraw.h>
  16. #include <Stdio.h>
  17. #include <StdLib.h>
  18. #include <TextUtils.h>
  19. #include <Menus.h>
  20. #include <Devices.h>
  21. #include <Events.h>
  22. #include <OpenTransport.h>
  23. #include <OpenTptInternet.h>
  24.  
  25.  
  26. OTResult            gTestResult = kOTNoError;
  27.  
  28. long                gNumber = 0;
  29.  
  30. InetInterfaceInfo    gMyInfo;
  31.  
  32. union
  33. {
  34.     InetHost    addr;
  35.     UInt8        bytes[4];
  36. } gTmpAddr;
  37.  
  38. void Inits()
  39. {
  40.     /*
  41.      * Do standard inits
  42.      */
  43.     InitGraf(&qd.thePort);
  44.     if ( InitOpenTransport() != kOTNoError )
  45.     {
  46.         fprintf(stderr, "GetInterfaceInfo: Could not initialize ASLM, exiting\n");
  47.         exit(1);
  48.     }
  49. }
  50.  
  51. void bzero(UInt8* start, size_t size)
  52. {
  53.     do
  54.     {
  55.         *start++ = 0;
  56.     } while (--size);
  57. }
  58.  
  59. int main()
  60. {
  61.     char    mystr[kMaxHostNameLen];
  62.     OSErr    err;
  63.     long    i;
  64.     UInt16     j;
  65.     
  66.     Inits();
  67.     fflush(stdout);
  68.     
  69.     do
  70.     {
  71.         fprintf(stderr, "How many interfaces would you like information about? \nEnter a number from 1 to 10: \n");
  72.         if ( gets(mystr) != 0 ) 
  73.             stringtonum(mystr, &gNumber);
  74.         else
  75.         {
  76.             fprintf(stderr, "Couldn't get number from window!\n");
  77.             return(1);
  78.         }
  79.         if (gNumber < 1)
  80.         {
  81.             fprintf(stderr, "Sorry; %d is an invalid entry for this test\n", gNumber);
  82.             break;
  83.         }
  84.         for (i = 0; i < gNumber; i++)
  85.         {
  86.             bzero((UInt8*)&gMyInfo, sizeof(InetInterfaceInfo));
  87.             err = OTInetGetInterfaceInfo(&gMyInfo, i);
  88.             if (err != kOTNoError)
  89.             {
  90.                 if (err == kOTNotFoundErr)
  91.                 {
  92.                     fprintf(stderr, "Interface %d: Does Not Exist\n", i);
  93.                     break;
  94.                 }
  95.                 else
  96.                 {
  97.                     fprintf(stderr, "Error! GetInterfaceInfo returns %d\n", err);
  98.                     break;
  99.                 }
  100.             }
  101.             gTmpAddr.addr = gMyInfo.fAddress;
  102.             fprintf(stderr, "Interface %d : Address = %d.%d.%d.%d\n ", i, gTmpAddr.bytes[0],
  103.                     gTmpAddr.bytes[1], gTmpAddr.bytes[2], gTmpAddr.bytes[3]);
  104.             gTmpAddr.addr = gMyInfo.fNetmask;
  105.             fprintf(stderr, "Netmask = %d.%d.%d.%d\n ",  gTmpAddr.bytes[0],
  106.                     gTmpAddr.bytes[1], gTmpAddr.bytes[2], gTmpAddr.bytes[3]);
  107.             if (gMyInfo.fBroadcastAddr != NULL)
  108.             {
  109.                 gTmpAddr.addr = gMyInfo.fBroadcastAddr;
  110.                 fprintf(stderr, "Broadcast Address = %d.%d.%d.%d\n",  gTmpAddr.bytes[0], 
  111.                     gTmpAddr.bytes[1], gTmpAddr.bytes[2], gTmpAddr.bytes[3]);
  112.             }    
  113.             fprintf(stderr, "Interface MTU = %d\n ", gMyInfo.fIfMTU);
  114.             if (gMyInfo.fHWAddrLen > 0)
  115.             {
  116.                 fprintf(stderr, "Interface hardware address = ");
  117.                 for(j = 0; j < gMyInfo.fHWAddrLen; j++)
  118.                 {
  119.                     fprintf(stderr, "%2d", gMyInfo.fHWAddr[j]);
  120.                     if (j < (gMyInfo.fHWAddrLen - 1))
  121.                     {
  122.                         fprintf(stderr, ":");
  123.                     }
  124.                 }
  125.                 fprintf(stderr, "\n");
  126.             }
  127.             else
  128.             {
  129.                 fprintf(stderr, "There is no hardware address associated with this interface\n");
  130.             }
  131.             gTmpAddr.addr = gMyInfo.fDefaultGatewayAddr;
  132.             fprintf(stderr, "Default Gateway Address = %d.%d.%d.%d\n",  gTmpAddr.bytes[0],
  133.                     gTmpAddr.bytes[1], gTmpAddr.bytes[2], gTmpAddr.bytes[3]);
  134.             gTmpAddr.addr = gMyInfo.fDNSAddr;
  135.             fprintf(stderr, "Domain Name Server Address = %d.%d.%d.%d\n",  gTmpAddr.bytes[0],
  136.                     gTmpAddr.bytes[1], gTmpAddr.bytes[2], gTmpAddr.bytes[3]);
  137.             if (gMyInfo.fDomainName[0] != NULL)
  138.                 fprintf(stderr, "Domain Name = %s", gMyInfo.fDomainName);
  139.             fprintf(stderr, "\n");
  140.         }    
  141.     } while ( false );
  142.     
  143.     fprintf(stderr, "Tests Completed.\n");
  144.     return 0;
  145. }
  146.  
  147.  
  148.